In the past, when a user desired to change versions of software, the user was required to go to a store, purchase the new software, and install the new version on the user's computer.
Today, some software, including some upgrades, is distributed over the Internet. If the software can be packaged in a small executable, a software vendor may choose to distribute the software over the Internet. Using this model, a user can browse to a vendor's Website, pay for software, and then download the software.
This model has problems when the software requires a lot of disk space or when the user has an Internet connection with relatively low bandwidth. For example, to download a CD's worth of software (650 Megabytes) using a computer having a 28.8 kilobits per second (Kbs) connection to the Internet would take over 50 hours to download. Even with a 512 Kbs connection, downloading 650 Megabytes of software would take almost three hours—assuming that the connection remained up and delivered its full bandwidth.
What is needed is an efficient way to provide the application to the user over the Internet.